Glossary
address
A number that specifies the location of a byte in memory.address range
An area of logical address space that VM maps to a specific backing store. See also primary address range and file mapped address range.application heap
An area of memory in the application heap zone in which memory is dynamically allocated and released on demand. The heap contains the application's data structures, resources, and code segments as needed.asynchronous execution
A mode of invoking a routine. During the asynchronous execution of a routine, an application is free to perform other tasks. See also synchronous execution.backing store
A file in which the Virtual Memory Manager stores the contents of unneeded pages of memory.backing volume
See paging device.bus error
A common synonym for bus error exception.bus error exception
The type of exeception that is raised when the processor is unable to access an address. See also exception.bus error exception stack frame
The type of exception stack frame that is created when the processor takes a bus error.bus error handler
The system software responsible for handling bus error exceptions. Under VM, the bus error handler is also the page fault handler.cache
A mechansim whereby frequently accessed parts of a data structure are held in the fastest storage mechanism, while infrequently are held in the slowest. Caches help to improve overall performance while minimising the cost of the storage system.cache miss
A cache miss occurs when the cache must fetch a piece of data from the slower storage device.callback routine
A routine whose address you give to the system so that it can be executed as part of the operation of some other routine.completion routine
A routine that is executed when an asynchronous call to some other routine is completed.Condition Code Register (CCR)
A 680x0 register that holds the results of comparison operations. This register is not privileged, but is only available on 68010 and higher processors. PowerPC-based Mac OS systems emulate this register. See also privileged register and Status Register.deferred task
A task that is deferred until interrupts are enabled. Deferred tasks are implemented by the Deferred Task Manager and allow interrupt handlers to postpone length calculations until interrupts are enabled, thereby reducing system interrupt latency. Do not confuse this with a deferred user function.deferred user function
A callback routine whose execution has been deferred until paging is safe.direct memory access (DMA)
A technique for transferring data in or out of memory without using the processor. DMA devices are typically programmed using physical addresses.disable user code
User code is any code that is allowed to cause a page fault. When page faults are not safe, VM disables user code by deferring its operation using a deferred user function.DMA
See direct memory access.double page fault
A page fault that occurs while the Virtual Memory Manager is already handling another page fault. Double page faults are fatal. See also page fault and fatal page fault.exception
A special condition inside the microprocessor that causes it to halt processing application execution ard start executing an exception handler. Exception have a variety of causes, but the ones pertinent to VM are interrupts, privilege violation exceptions and bus error exceptions. All exceptions cause the processor (the emulated 680x0 processor on PowerPC) to switch to supervisor mode.exception handler
A special system software routine that is responsible for handling exceptions by either a) recovering from the exception, b) terminating the process that caused the exception, or c) halting the system. See also bus error handler.exception stack frame
A block of data placed on the stack automatically by the processor when an exception occurs. See also stack frame.exception vector table
A table that contains the logical address of the exception handler for each type of exception.fatal page fault
A page fault that could not be handled by the the page fault handler. A fatal page fault can be either a double page fault, a resource constraint fatal page fault, or a true fatal page fault.file mapped address range
An address range whose backing store is a CFM container. See also primary address range.file mapping
The process of using a file's data fork as the virtual memory backing store. File mapping is used by the Mac OS to load CFM containers without consuming the Process Manager heap.file mapping space
A large area of the logical memory map that is reserved for file mapping.heap
An area of memory in which space is dynamically allocated and released on demand, using the Memory Manager. See also system heap, Process Manager heap, and application heap.held
After you hold memory, it is held.hold
To temporarily prevent a range of logical memory from being paged out by the Virtual Memory Manager.interrupt
A special kind of exception triggered by some external source, such as the completion of an I/O operation, or the expiration of a timer.interrupt stack
A stack that is held so that the processor can create an exception stack frame with no possibility of a page fault. This is especially important when the processor is creating a bus error exception stack frame caused by a page fault. If the processor takes a page fault while creating an exception frame, it unconditionally halts.Interrupt Stack Pointer (ISP)
A 680x0 register that points to the top of the interrupt stack. The 680x0 automatically uses to the ISP whenever it is in supervisor mode. See also User Stack Pointer.lock
To temporarily prevent a range of logical memory from being paged out or have its logical to physical mapping changed by the Virtual Memory Manager. Do not confuse this type of locking with locking a handle.logical address
An address used by software. The logical address is translated into a physical address by the memory management unit.logical address space
A large area of addressable memory dedicated to virtual memory.logical memory map
The assignment of the address space on a computer to specific functions such as RAM, ROM, and memory mapped I/O.memory above
BufPtr
System extensions can allocate memory aboveBufPtr
at system startup time. This memory is included in the primary address range.memory managment unit (MMU)
A hardware component (either integrated into the main processor or provided as a separate chip) that maps logical addresses to physical addresses. All 68030, 68040 and PowerPC processors have an integrated MMU. Some computers based on the 68020 processors have a slot for an optional Paged Memory Management Unit (PMMU).Memory Manager
The part of the Mac OS that dynamically allocates and releases memory space in a heap.MMU
See memory management unit.NuBus
The 32-bit wide synchronous bus used for expansion cards in the Macintosh II family of computers.page
The basic unit of memory used in virtual memory. Under System 7-style VM, pages are 4KB, but you should always use the system services provided to determine the page size.page fault
A special kind of bus error exception caused by an attempt to access code or data in a page of memory that is not currently resident in RAM. See also fatal page fault.page fault handler
The system software responsible for handling page faults. A page fault handler is responsible for a) determining whether a page fault is fatal, and b) if it isn't fatal, satisfying the page fault by fetching the page from disk. See also bus error handler.page table
A table in memory that the memory management unit reads to translate logical addresses into physical addresses.Paged Memory Management Unit (PMMU)
The Motorola MC68851 chip, used in some 68020 computers to perform logical-to-physical address translation. See also memory management unit.paging
The process of moving data between physical memory and the backing-store.paging device
A secondary storage device (disk) that contains a backing store.PCI
See Peripheral Component Interconnect.PEF container
The physical storage area for a CFM code fragment. Containers can be a file, a section of ROM, or even a resource. See "Mac OS Runtime Architectures" for more information.Peripheral Component Interconnect
A bus architecture for connecting plug-in expansion cards to a computer's main processor and memory.physical address
An address represented by bits on a physical address bus. The physical address may be different from the logical address, in which case the memory management unit translates the logical address into a physical address.PMMU
See Paged Memory Management Unit.primary address range
An address range that is created when the system starts up, which encompasses low memory, the system heap and the Process Manager heap. This address range is used to simulate the physical memory of a Mac OS computer running with VM turned off.privilege violation exception
An exception that is raised when the processor tries to do an operation that is not allowed in the current processor mode.privileged instruction
An instruction that can only be executed when the processor is in supervisor mode.privileged register
A register that can only be accessed when the processor is in supervisor mode.Process Manager
The part of the Mac OS responsible for starting and stopping processes, and switching between them.Process Manager heap
A heap controlled by the Process Manager wherein application heaps are allocated.processor mode
An internal state of the processor that determines the privileges of the currently executing instructions. On PowerPC systems, both the emulated 680x0 and the native PowerPC processors have a processor mode but only the emulated 680x0 processor mode is significant. The native PowerPC processor is virtually always in user mode. See also user mode and supervisor mode.Program Counter (PC)
A register in the processor that contains the logical address of the next instruction to be executed. On a PowerPC-based Mac OS computer, both the emulated 680x0 processor and the native PowerPC processor have a PC.RAM
See random-access memory.random-access memory (RAM)
Memory whose contents can be changed. The RAM in a Mac OS computer contains exception vectors, buffers used by hardware devices, the system and application heaps, the stack, and other information used by applications.read-only memory (ROM)
Memory whose contents are permanent. The ROM in a Mac OS computer contains routines for the Toolbox and the Operating System, and the various system traps.resident
A page that is current in physical RAM is described as being resident. Note that memory that is held is resident, but not vice versa.resource constraint fatal page fault
A page fault that is fatal because of a resource constraint. For example, a page fault that happens when the paging device is busy is a fatal because VM needs to read the paging device in order to satisfy a page fault and Mac OS paging devices are only capable of handling one request at a time. See also fatal page fault.ROM
See read-only memory.stack
An area of memory that is used to store temporary information. See also interrupt stack.stack frame
The area of the stack used by a routine for its parameters, return address, local variables, and temporary storage.stack pointer
A pointer to the top of the stack.Status Register (SR)
A 680x0 register that holds both the results of comparison operations and a number of other processor control bits. One of these bits holds the current processor mode. This register is available on all 680x0 processors, but it privileged on the 68010 and higher. PowerPC-based Mac OS systems emulate this register. See also privileged register and Condition Code Register.supervisor mode
The processor mode that allows execution of privileged instructions and access to privileged registers. See also user mode.synchronous execution
A mode of invoking a routine. After calling a routine synchronously, an application cannot perform other tasks until the routine is completed. See also asynchronous execution.system heap
An area of memory reserved for use by the operating system. Under the current System 7 VM implementation, VM holds the entire system heap, although you should still explicitly hold system heap memory that you know needs to be held. See also application heap and Process Manager heap.temporary memory
Memory allocated outside an application heap that may be available for occasional short-term use. Temporary memory is actually allocated in the Process Manager heap.thrashing
The state at which the computer spends more time paging than it does executing useful code. Thrashing occurs when the working set of all active processes exceeds the physical pages available. This might be becaused too many processes are running, or because a process reduced the number of physical pages available by injudiciously holding too much memory.true fatal page fault
A fatal page fault that occurs for a good reason, such as a disk error on the paging device. See also fatal page fault.unlock
To allow a previously locked range of pages to be paged out. Do not confuse this type of locking with unlocking a handle.user code
Code that is allowed to cause page faults. VM defers the execution of user code while paging is not safe to avoid fatal page faults.user mode
The processor mode that forbids execution of privileged instructions and access to privileged registers. Any attempt to do so will result in a privilege violation exception. VM emulates some privileged instructions so that programs that use them continue to operate under VM. See also supervisor mode.user stack
A stack that is used by normal application processing. See also interrupt stack.User Stack Pointer (USP)
A 680x0 register that points to the top of the user stack. The 680x0 automatically uses the USP whenever it is in user mode. See also Interrupt Stack Pointer.Vector Base Register (VBR)
A 680x0 register that points to exception vector table.virtual memory (VM)
A technique for providing a logical address space that is larger than the physical memory installed in the computer. The Virtual Memory Manager does this by paging infrequently used code and data to a paging device.Virtual Memory Manager
The part of the Mac OS that provides virtual memory.VM
See virtual memory and Virtual Memory Manager.VM-immune
A device driver that can be ignored by virtual memory. A VM-immune driver must not be a paging device or use hardware interrupts.working set
The set of pages that a process reads or writes in its typical operation.
Acrobat version of this Note (24K)